iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

經過前幾天的努力,我們的錄音功能已經成功建置完成。終於可以來介紹本次主題的另一個重點:ChatGPT。近年來,隨著AI的劇烈進展,特別是今年可以稱為生成式AI的元年,ChatGPT的誕生無疑進一步推動了AI語言模型的發展。這個強大的自然語言處理模型已成為許多創新應用的核心,從客服自動回答到創作輔助,它都展示了其無限潛力。在接下來的鐵人賽中,我們將會使用Whisper模型來實現語音轉文字並且搭配GPT模型來實現APP的英文對話核心功能,因此今天就讓我們先來了解GPT和Whisper API的使用方式吧!


注意!使用OpenAI提供的模型時,會產生一定的費用!

GPT-3.5和GPT-4

GPT-3.5和GPT-4模型都是由OpenAI開發的先進語言模型。這些模型透過大量的文本數據訓練,能夠理解和生成自然語言文本。ChatGPT則是建立在GPT-3.5和GPT-4模型架構之上。GPT-4模型可以看作是GPT-3.5模型的升級版,除了具有更多的參數和增強的穩定性,其Token數量也達到了GPT-3.5模型的2到8倍。由於Token數量的增加,模型能夠儲存的上下文對話記錄也相應增加,但這也意味著使用成本將會提高。以下是GPT API價格。
https://ithelp.ithome.com.tw/upload/images/20230908/20161663XQtQzvkWUi.png

Whisper

Whisper模型則是一個專門為語音識別和語音翻譯設計的自動語音識別(ASR)系統。與其他語音轉文字系統不同,Whisper模型能夠透過其內建的神經網路技術,有效處理各種不同的口音、背景噪音和專業語言。以下是Open AI上Whisper API的價格。
https://ithelp.ithome.com.tw/upload/images/20230908/20161663PQeFnUlviH.png

API Key建立

在使用API之前,我們需要先申請OpenAI的帳號並設定好「信用卡」(以前新用戶有18美元的免費額度可用,現在好像只剩下5美元)。完成後,請在右上角的頭像中選擇「View API Keys」來查看相關密鑰。
https://ithelp.ithome.com.tw/upload/images/20230908/20161663B5EKPnxjJQ.jpg
在API keys頁面中,找到「Create new secret key」按鈕並點擊。接著輸入名稱後,就可以完成API Key的建立。請記得將這組Key記錄下來,以便後續使用。
https://ithelp.ithome.com.tw/upload/images/20230908/20161663sSh348HWjW.png
https://ithelp.ithome.com.tw/upload/images/20230908/20161663KefYAyjrF1.png

GPT API測試

在理解API結構之前,我們可以先利用Postman工具來實際執行一次API請求。透過觀察和了解其回應內容,可以更深入的瞭解API。
https://ithelp.ithome.com.tw/upload/images/20230908/201616632vzSa8q2nO.png

Request

Request的主要參數有以下兩項:

  • messages:這個參數包含了當前對話和歷史上的所有對話上下文。
  • model:用於選擇模型,您可以選用GPT-3.5(gpt-3.5-turbo-0613)或GPT-4(gpt-4-0613)。

除了主要參數外,還有一些選用的參數可以設定:

  • temperature:控制對話的隨機性,範圍為0到2。數值越高,輸出的隨機性也越高。我通常都設定在0.7左右。
  • max_tokens:設定回答時最大的Token數量。若有特殊需求,例如價格考量或希望回答可以精簡的話可以設定。
  • top_p:這個參數和temperature有類似的效果,也會影響到輸出的結果。
  • stream:這是串流功能的參數,開啟後可以搭配Server Send Event達到和ChatGPT逐字稿打字的效果。

以上是比較常用到的參數,如有想了解其餘的參數設定,可以參考Open AI的API Reference文檔

Response

  • choices:這是回覆的聊天內容的主體,基本上我都直接使用choices[0].message.context來取得對話內容。
  • usage:表示此次API所消耗的「提示」、「回答」和「合計」的Token數量。

我還記得當初在使用gpt-3.5-turbo-0301版本時,官方提到該版本不太關注系統消息(System Prompt)。然而,在0613版本發佈後,gpt-3.5-turbo開始關注系統消息,使得操作變得更加容易。有關此次更新的詳細資訊,可以參考Open AI官方的公告。

Whisper API測試

Whisper API提供了以下兩個API功能:

  • transcriptions:此功能專門將音訊轉換為文字。
  • translations:此功能將音訊翻譯成英語並轉換成文字。

在接下來的實作中,我們將主要集中在使用「transcriptions」功能。我們一樣先使用Postman工具實際進行一次API請求,並仔細觀察和了解回應的內容。
https://ithelp.ithome.com.tw/upload/images/20230908/201616637igHgPaDJb.png

Request

Request中主要的參數:

  • file:音訊檔案,接受的格式有「mp3」、「mp4」、「mpeg」、「mpga」、「m4a」、「wav」和「webm」。
  • model:選擇的模型,固定為whipser-1。
  • prompt:提示訊息。
  • language:輸入音頻的語言,可以提升辨識度和減少延遲。

更多其他選用參數,請參考Open AI API Reference文檔

Response

至於Whisper的Response則相對簡單,只有一個參數:

  • text:這個參數代表語音轉文字的結果。

 

結語

今天,我們探索了GPT和Whisper API,並學習了如何使用它。其中,我覺得Whisper模型絕對值得大家細細品味。在測試它的過程中,我發現Whisper模型不僅能辨識我的「台式口音」、「破英文」和「中文」,甚至是簡單的「台語」,都能以驚人的精確度將語音轉化為文字,真的非常的厲害呢!也正因為Whisper模型的強大性能,它自然成為我在實作語音轉文字功能時的首選方案。



Github專案程式碼:Ionic結合ChatGPT - Day8


上一篇
【Day - 7】Gesture & Capacitor Haptics - 建立自定義手勢和觸覺反饋
下一篇
【Day - 9】Whisper模型 - 將語音轉成文字
系列文
Ionic結合ChatGPT - 30天打造AI英語口說導師APP30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言